package com.zhang.warehouse.mapper;

import com.zhang.warehouse.entity.WareSku;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 仓库保存商品的信息 Mapper 接口
 * </p>
 *
 * @author 创世神
 * @since 2023-10-13
 */
@Mapper
public interface WareSkuMapper extends BaseMapper<WareSku> {

    void addStock(@Param("skuId") Long skuId, @Param("wareId") Long wareId, @Param("stock") Integer stock);

    /**
     * 获取一个sku的库存（减去锁定库存），并且这个sku只有一个仓库
     *
     * @param skuId
     * @return {@link Integer}
     */
    Integer getStockBySkuId(Long skuId);

    void LockStock(WareSku wareSku);

    /**
     * 扣除库存
     *返还库存锁定
     * @param skuId
     * @param skuQuantity
     */
    void deductStock(Long skuId, Integer skuQuantity);

    /**返还一个sku的库存
     * @param skuId
     * @param skuQuantity
     */
    void returnSkuStock(@Param("skuId") Long skuId,@Param("skuQuantity") Integer skuQuantity);
}
